struct spa {
	char spa_name[256];
	char *spa_comment;
	avl_node_t spa_avl;
	nvlist_t *spa_config;
	nvlist_t *spa_config_syncing;
	nvlist_t *spa_config_splitting;
	nvlist_t *spa_load_info;
	uint64_t spa_config_txg;
	int spa_sync_pass;
	pool_state_t spa_state;
	int spa_inject_ref;
	uint8_t spa_sync_on;
	spa_load_state_t spa_load_state;
	boolean_t spa_indirect_vdevs_loaded;
	boolean_t spa_trust_config;
	spa_config_source_t spa_config_source;
	uint64_t spa_import_flags;
	spa_taskqs_t spa_zio_taskq[7][4];
	dsl_pool_t *spa_dsl_pool;
	boolean_t spa_is_initializing;
	boolean_t spa_is_exporting;
	metaslab_class_t *spa_normal_class;
	metaslab_class_t *spa_log_class;
	int spa_log_devices;
	metaslab_class_t *spa_special_class;
	metaslab_class_t *spa_dedup_class;
	uint64_t spa_first_txg;
	uint64_t spa_final_txg;
	uint64_t spa_freeze_txg;
	uint64_t spa_load_max_txg;
	uint64_t spa_claim_max_txg;
	inode_timespec_t spa_loaded_ts;
	objset_t *spa_meta_objset;
	kmutex_t spa_evicting_os_lock;
	list_t spa_evicting_os_list;
	kcondvar_t spa_evicting_os_cv;
	txg_list_t spa_vdev_txg_list;
	vdev_t *spa_root_vdev;
	int spa_min_ashift;
	int spa_max_ashift;
	uint64_t spa_config_guid;
	uint64_t spa_load_guid;
	uint64_t spa_last_synced_guid;
	list_t spa_config_dirty_list;
	list_t spa_state_dirty_list;
	kmutex_t *spa_alloc_locks;
	avl_tree_t *spa_alloc_trees;
	int spa_alloc_count;
	spa_aux_vdev_t spa_spares;
	spa_aux_vdev_t spa_l2cache;
	nvlist_t *spa_label_features;
	uint64_t spa_config_object;
	uint64_t spa_config_generation;
	uint64_t spa_syncing_txg;
	bpobj_t spa_deferred_bpobj;
	bplist_t spa_free_bplist[4];
	zio_cksum_salt_t spa_cksum_salt;
	kmutex_t spa_cksum_tmpls_lock;
	void *spa_cksum_tmpls[14];
	uberblock_t spa_ubsync;
	uberblock_t spa_uberblock;
	boolean_t spa_extreme_rewind;
	kmutex_t spa_scrub_lock;
	uint64_t spa_scrub_inflight;
	uint64_t spa_load_verify_bytes;
	kcondvar_t spa_scrub_io_cv;
	uint8_t spa_scrub_active;
	uint8_t spa_scrub_type;
	uint8_t spa_scrub_finished;
	uint8_t spa_scrub_started;
	uint8_t spa_scrub_reopen;
	uint64_t spa_scan_pass_start;
	uint64_t spa_scan_pass_scrub_pause;
	uint64_t spa_scan_pass_scrub_spent_paused;
	uint64_t spa_scan_pass_exam;
	uint64_t spa_scan_pass_issued;
	boolean_t spa_resilver_deferred;
	kmutex_t spa_async_lock;
	kthread_t *spa_async_thread;
	int spa_async_suspended;
	kcondvar_t spa_async_cv;
	uint16_t spa_async_tasks;
	uint64_t spa_missing_tvds;
	uint64_t spa_missing_tvds_allowed;
	spa_removing_phys_t spa_removing_phys;
	spa_vdev_removal_t *spa_vdev_removal;
	spa_condensing_indirect_phys_t spa_condensing_indirect_phys;
	spa_condensing_indirect_t *spa_condensing_indirect;
	zthr_t *spa_condense_zthr;
	uint64_t spa_checkpoint_txg;
	spa_checkpoint_info_t spa_checkpoint_info;
	zthr_t *spa_checkpoint_discard_zthr;
	space_map_t *spa_syncing_log_sm;
	avl_tree_t spa_sm_logs_by_txg;
	kmutex_t spa_flushed_ms_lock;
	avl_tree_t spa_metaslabs_by_flushed;
	spa_unflushed_stats_t spa_unflushed_stats;
	list_t spa_log_summary;
	uint64_t spa_log_flushall_txg;
	zthr_t *spa_livelist_delete_zthr;
	zthr_t *spa_livelist_condense_zthr;
	uint64_t spa_livelists_to_delete;
	livelist_condense_entry_t spa_to_condense;
	char *spa_root;
	uint64_t spa_ena;
	int spa_last_open_failed;
	uint64_t spa_last_ubsync_txg;
	uint64_t spa_last_ubsync_txg_ts;
	uint64_t spa_load_txg;
	uint64_t spa_load_txg_ts;
	uint64_t spa_load_meta_errors;
	uint64_t spa_load_data_errors;
	uint64_t spa_verify_min_txg;
	kmutex_t spa_errlog_lock;
	uint64_t spa_errlog_last;
	uint64_t spa_errlog_scrub;
	kmutex_t spa_errlist_lock;
	avl_tree_t spa_errlist_last;
	avl_tree_t spa_errlist_scrub;
	uint64_t spa_deflate;
	uint64_t spa_history;
	kmutex_t spa_history_lock;
	vdev_t *spa_pending_vdev;
	kmutex_t spa_props_lock;
	uint64_t spa_pool_props_object;
	uint64_t spa_bootfs;
	uint64_t spa_failmode;
	uint64_t spa_deadman_failmode;
	uint64_t spa_delegation;
	list_t spa_config_list;
	zio_t **spa_async_zio_root;
	zio_t *spa_suspend_zio_root;
	zio_t *spa_txg_zio[4];
	kmutex_t spa_suspend_lock;
	kcondvar_t spa_suspend_cv;
	zio_suspend_reason_t spa_suspended;
	uint8_t spa_claiming;
	boolean_t spa_is_root;
	int spa_minref;
	spa_mode_t spa_mode;
	spa_log_state_t spa_log_state;
	uint64_t spa_autoexpand;
	ddt_t *spa_ddt[14];
	uint64_t spa_ddt_stat_object;
	uint64_t spa_dedup_dspace;
	uint64_t spa_dedup_checksum;
	uint64_t spa_dspace;
	kmutex_t spa_vdev_top_lock;
	kmutex_t spa_proc_lock;
	kcondvar_t spa_proc_cv;
	spa_proc_state_t spa_proc_state;
	proc_t *spa_proc;
	uint64_t spa_did;
	boolean_t spa_autoreplace;
	int spa_vdev_locks;
	uint64_t spa_creation_version;
	uint64_t spa_prev_software_version;
	uint64_t spa_feat_for_write_obj;
	uint64_t spa_feat_for_read_obj;
	uint64_t spa_feat_desc_obj;
	uint64_t spa_feat_enabled_txg_obj;
	kmutex_t spa_feat_stats_lock;
	nvlist_t *spa_feat_stats;
	uint64_t spa_feat_refcount_cache[31];
	taskqid_t spa_deadman_tqid;
	uint64_t spa_deadman_calls;
	hrtime_t spa_sync_starttime;
	uint64_t spa_deadman_synctime;
	uint64_t spa_deadman_ziotime;
	uint64_t spa_all_vdev_zaps;
	spa_avz_action_t spa_avz_action;
	uint64_t spa_autotrim;
	uint64_t spa_errata;
	spa_stats_t spa_stats;
	spa_keystore_t spa_keystore;
	uint64_t spa_lowmem_page_load;
	uint64_t spa_lowmem_last_txg;
	hrtime_t spa_ccw_fail_time;
	taskq_t *spa_zvol_taskq;
	taskq_t *spa_prefetch_taskq;
	uint64_t spa_multihost;
	mmp_thread_t spa_mmp;
	list_t spa_leaf_list;
	uint64_t spa_leaf_list_gen;
	uint32_t spa_hostid;
	kmutex_t spa_activities_lock;
	kcondvar_t spa_activities_cv;
	kcondvar_t spa_waiters_cv;
	int spa_waiters;
	boolean_t spa_waiters_cancel;
	spa_config_lock_t spa_config_lock[7];
	zfs_refcount_t spa_refcount;
	taskq_t *spa_upgrade_taskq;
}
struct vdev {
	uint64_t vdev_id;
	uint64_t vdev_guid;
	uint64_t vdev_guid_sum;
	uint64_t vdev_orig_guid;
	uint64_t vdev_asize;
	uint64_t vdev_min_asize;
	uint64_t vdev_max_asize;
	uint64_t vdev_ashift;
	uint64_t vdev_state;
	uint64_t vdev_prevstate;
	vdev_ops_t *vdev_ops;
	spa_t *vdev_spa;
	void *vdev_tsd;
	vdev_t *vdev_top;
	vdev_t *vdev_parent;
	vdev_t **vdev_child;
	uint64_t vdev_children;
	vdev_stat_t vdev_stat;
	vdev_stat_ex_t vdev_stat_ex;
	boolean_t vdev_expanding;
	boolean_t vdev_reopening;
	boolean_t vdev_nonrot;
	int vdev_open_error;
	kthread_t *vdev_open_thread;
	uint64_t vdev_crtxg;
	uint64_t vdev_ms_array;
	uint64_t vdev_ms_shift;
	uint64_t vdev_ms_count;
	metaslab_group_t *vdev_mg;
	metaslab_group_t *vdev_log_mg;
	metaslab_t **vdev_ms;
	uint64_t vdev_pending_fastwrite;
	txg_list_t vdev_ms_list;
	txg_list_t vdev_dtl_list;
	txg_node_t vdev_txg_node;
	boolean_t vdev_remove_wanted;
	boolean_t vdev_probe_wanted;
	list_node_t vdev_config_dirty_node;
	list_node_t vdev_state_dirty_node;
	uint64_t vdev_deflate_ratio;
	uint64_t vdev_islog;
	uint64_t vdev_removing;
	boolean_t vdev_ishole;
	uint64_t vdev_top_zap;
	vdev_alloc_bias_t vdev_alloc_bias;
	space_map_t *vdev_checkpoint_sm;
	boolean_t vdev_initialize_exit_wanted;
	vdev_initializing_state_t vdev_initialize_state;
	list_node_t vdev_initialize_node;
	kthread_t *vdev_initialize_thread;
	kmutex_t vdev_initialize_lock;
	kcondvar_t vdev_initialize_cv;
	uint64_t vdev_initialize_offset[4];
	uint64_t vdev_initialize_last_offset;
	range_tree_t *vdev_initialize_tree;
	uint64_t vdev_initialize_bytes_est;
	uint64_t vdev_initialize_bytes_done;
	time_t vdev_initialize_action_time;
	boolean_t vdev_trim_exit_wanted;
	boolean_t vdev_autotrim_exit_wanted;
	vdev_trim_state_t vdev_trim_state;
	list_node_t vdev_trim_node;
	kmutex_t vdev_autotrim_lock;
	kcondvar_t vdev_autotrim_cv;
	kthread_t *vdev_autotrim_thread;
	kmutex_t vdev_trim_lock;
	kcondvar_t vdev_trim_cv;
	kthread_t *vdev_trim_thread;
	uint64_t vdev_trim_offset[4];
	uint64_t vdev_trim_last_offset;
	uint64_t vdev_trim_bytes_est;
	uint64_t vdev_trim_bytes_done;
	uint64_t vdev_trim_rate;
	uint64_t vdev_trim_partial;
	uint64_t vdev_trim_secure;
	time_t vdev_trim_action_time;
	kmutex_t vdev_initialize_io_lock;
	kcondvar_t vdev_initialize_io_cv;
	uint64_t vdev_initialize_inflight;
	kmutex_t vdev_trim_io_lock;
	kcondvar_t vdev_trim_io_cv;
	uint64_t vdev_trim_inflight[2];
	vdev_indirect_config_t vdev_indirect_config;
	krwlock_t vdev_indirect_rwlock;
	vdev_indirect_mapping_t *vdev_indirect_mapping;
	vdev_indirect_births_t *vdev_indirect_births;
	kmutex_t vdev_obsolete_lock;
	range_tree_t *vdev_obsolete_segments;
	space_map_t *vdev_obsolete_sm;
	kmutex_t vdev_scan_io_queue_lock;
	struct dsl_scan_io_queue *vdev_scan_io_queue;
	range_tree_t *vdev_dtl[4];
	space_map_t *vdev_dtl_sm;
	txg_node_t vdev_dtl_node;
	uint64_t vdev_dtl_object;
	uint64_t vdev_psize;
	uint64_t vdev_wholedisk;
	uint64_t vdev_offline;
	uint64_t vdev_faulted;
	uint64_t vdev_degraded;
	uint64_t vdev_removed;
	uint64_t vdev_resilver_txg;
	uint64_t vdev_nparity;
	char *vdev_path;
	char *vdev_devid;
	char *vdev_physpath;
	char *vdev_enc_sysfs_path;
	char *vdev_fru;
	uint64_t vdev_not_present;
	uint64_t vdev_unspare;
	boolean_t vdev_nowritecache;
	boolean_t vdev_has_trim;
	boolean_t vdev_has_securetrim;
	boolean_t vdev_checkremove;
	boolean_t vdev_forcefault;
	boolean_t vdev_splitting;
	boolean_t vdev_delayed_close;
	boolean_t vdev_tmpoffline;
	boolean_t vdev_detached;
	boolean_t vdev_cant_read;
	boolean_t vdev_cant_write;
	boolean_t vdev_isspare;
	boolean_t vdev_isl2cache;
	boolean_t vdev_copy_uberblocks;
	boolean_t vdev_resilver_deferred;
	vdev_queue_t vdev_queue;
	vdev_cache_t vdev_cache;
	spa_aux_vdev_t *vdev_aux;
	zio_t *vdev_probe_zio;
	vdev_aux_t vdev_label_aux;
	uint64_t vdev_leaf_zap;
	hrtime_t vdev_mmp_pending;
	uint64_t vdev_mmp_kstat_id;
	uint64_t vdev_expansion_time;
	list_node_t vdev_leaf_node;
	kmutex_t vdev_dtl_lock;
	kmutex_t vdev_stat_lock;
	kmutex_t vdev_probe_lock;
	zfs_ratelimit_t vdev_delay_rl;
	zfs_ratelimit_t vdev_checksum_rl;
}
@#$ EXIT CODE $#@
0
